
#import "instrument_view.h"
#include "sbrush_instrument.h"
#include <memory>

namespace dag {
	class Mutex;
}

namespace sbrush {
	class InstrumentViewUpdater : public InstrumentListener {
	public:
		InstrumentViewUpdater(InstrumentView* view = NULL);
		virtual ~InstrumentViewUpdater() throw();
		void instrumentCallback(const Instrument* instrument,
								const InstrumentState& state);
		void setInstrumentView(InstrumentView* view);
		InstrumentView* instrumentView();

	private:
		InstrumentView* m_InstrumentView;
		std::auto_ptr<dag::Mutex> m_Mutex;
	};
}